#pragma once
#ifndef PARTICLESENSOROBSERVER_H
#define PARTICLESENSOROBSERVER_H

#include "ParticleBase.h"
#include "PropertyAdhesions.h"
#include "PropertyDirectionTracer.h"

namespace ParticleEngine
{
	class ParticleSensorObserver : public ParticleBase
	{
	public:
		ParticleSensorObserver(ParticleContext& NewContext);
		~ParticleSensorObserver();

		virtual ColorRGBA<unsigned char> GetColor();

		virtual void Sole();
		virtual void InteractionIndividual(ParticleBase*const Other, Vec<2, float>& Space, const float& DistanceSquared);

		virtual void SaveIndividual(std::ofstream& Strm);
		virtual void LoadIndividual(std::ifstream& Strm);

		virtual PropertyContent *HasHeat(){ return&Heat; };
		PropertyContent Heat;

		virtual PropertySignal* HasSignal0(){ return&Signal0; };
		PropertySignal Signal0;
		virtual PropertySignal* HasSignal1(){ return&Signal1; };
		PropertySignal Signal1;

		PropertyDirectionTracer DirectionTracer;

		static const DescriptorParticle Descriptor;
	};
}

#endif